import { defineConfig, loadEnv } from 'vite'
import createVitePlugins from './vite/index.js'
import path from 'path'
export default defineConfig(({ mode, command }) => {
  // 获取.env文件里定义的环境变量
  const env = loadEnv(mode, process.cwd())

  return {
    base: './',
    resolve: {
      alias: {
        '@': path.resolve(process.cwd(), './src')
      }
    },
    build: {
      sourcemap: process.env.NODE_ENV !== 'production',
      minify: process.env.NODE_ENV === 'production',
      chunkSizeWarningLimit: 1000, // 调整chunk大小警告阈值
      // 自定义打包结构
      rollupOptions: {
        output: {
          chunkFileNames: 'js/[name]-[hash].js',
          entryFileNames: 'js/[name]-[hash].js',
          assetFileNames: (assetInfo) => {
            const extType = assetInfo.name.split('.').pop()?.toLowerCase();
            if (['png', 'jpg', 'jpeg', 'gif', 'svg', 'ico', 'webp'].includes(extType)) {
              return 'images/[name]-[hash].[ext]'; // 确保此行正确
            } else if (['css', 'scss'].includes(extType)) {
              return 'css/[name]-[hash].[ext]';
            } else {
              return 'assets/[name]-[hash].[ext]';
            }
          },
        },
      },
    },
    plugins: createVitePlugins(env, command === 'build'),
    //

    server: {
      port: '3000',
      host: '0.0.0.0',//指定服务器应该监听哪个 IP 地址。 如果将此设置为 0.0.0.0 将监听所有地址
      open: false, //自动打开
      proxy: {
        // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
        '/api': {
          target: 'http://localhost:8088/api/', // 后端服务实际地址
          changeOrigin: true, //开启代理
          rewrite: (path) => path.replace(/^\/api/, '')
        }
      }
    }
  }
})
